#ifndef PRINCIPAL_H_
#define PRINCIPAL_H_

#include <QChar>
#include <QEventLoop>
#include <QFile>
#include <QList>
#include <QMainWindow>
#include <QRegExp>
#include <QSqlDatabase>
#include <QSqlError>
#include <QSqlQuery>
#include <QString>
#include <QStringList>
#include <QTextStream>
#include <QTreeWidget>
#include <QTreeWidgetItem>
#include <QTreeWidgetItemIterator>
#include <QUrl>
#include <QWebFrame>
#include <QWebPage>

#include "funcoes.h"
#include "ui_principal.h"

class JanelaPrincipal : public QMainWindow
{
    Q_OBJECT

    // Metodos =================================================================
    public:
        JanelaPrincipal();
        ~JanelaPrincipal();

    private:
        bool carregar_bd();
        bool carregar_bluechips();
        bool carregar_smallcaps();
        bool criar_bd();
        
        QStringList processar_dados( const QString & );
        
        void carregar_carteira();
        void preencher_papeis();

    private slots:
        void carregamento_finalizado( bool );

        void on_botao_analisar_clicked();

    // Atributos ===============================================================
    private:
        // Interface
        Ui_JanelaPrincipal *ui;

        // Loop que será utilizado para esperar a finalização do carregamento
        // das informações da web
        QEventLoop loop;

        // Lista de papéis
        QList< QStringList > *bluechips;
        QList< QStringList > *smallcaps;

        // Carteira
        QStringList *carteira;
        
        // Banco de dados que armazenará o histórico das consultas
        QSqlDatabase *banco;

        // Página que será utilizada para realizar as consultas na web
        QWebPage pagina;
};

#endif
